home *** CD-ROM | disk | FTP | other *** search
-
-
-
- The Analog Computer Emulator & Simulator
-
-
- AMIGA - ACES March 10, 1994
-
-
-
- (Preliminary Documentation)
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Robert Berkey
-
-
-
-
- -------------------------------------------------------------------------
-
- -Index-
-
- Introduction .........................................Page 2
- ACES Modules .........................................Page X
- Data Preparation .....................................Page X
- Functional Setup......................................Page X
- Operation ............................................Page X
- Control Panel ........................................Page x
- Data Editor ..........................................Page X
- Plotter Setup ........................................Page X
- Plot Exporting .......................................Page X
-
- ACES Module Definitions ..........................Appendix A
- Plotter Data Format ..............................Appendix B
- Macro Collection .................................Appendix C
- Examples .........................................Appendix D
-
- Example 01 --SpringMass----------------------------Page x
- Example 02 --SineWave------------------------------Page x
- Example 03 --PHYSBE--------------------------------Page x
- Example 04 --CurveFit a,b,c -----------------------Page x
- Example 05 --Splat---------------------------------Page x
- Example 06 --Plate---------------------------------Page x
- Example 07 --Algebra-------------------------------Page x
- Example 08 --PID-----------------------------------Page x
- Example 09 --Sample--------------------------------Page x
- Example 10 --Implicit------------------------------Page x
-
-
- Conclusions ..........................................Page x
-
-
- -------------------------------------------------------------------------
-
-
- -Introduction-
-
- Analog computing had it's heyday back in the 1960's, 70's, and 80's.
- The analog method of simulating physical systems and solving differential
- equations gave engineers and scientists the power to attack and solve
- many scientific and engineering problems by using the analog method.
-
- Analog computing equipment was and is expensive to buy, maintain,
- and use. Since analog elements have to be connected with wires plugged
- into a patching board, programming becomes a somewhat tedious exercise.
- With the presence of faster and more capable digital computers were
- being developed, attempts where made to emulate the analog computer
- functionality on the digital machines. Many of these emulations were run
- on the large "mainframe" machines, and later implemented on some of the
- smaller "mini" computers. Emulation languages developed include MIMIC,
- MIDAS, CSSL, and CSMP to name a few. Most of these programs were run
- "batch" fashion where data and parameters were entered on punched cards
- and submitted to the machine room for computation. The output (plots and
- print-outs) from the computer was received some time later and the
- results evaluated. This method, while not giving as good of a "feel" for
- the problem, as with analog methods, did solve problems and reduced or
- totally eliminated the need for an analog facility. During this period
- the problems, to be solved, also increased in complexity requiring even
- larger investments for an analog facility.
-
- With the introduction of the "Personal Computer" and the
- availibility of faster and more capable hardware and software, it is now
- possible to put analog style computing on your desktop. Analog Computer
- Emulator System (ACES) is a program for the Amiga computers to do
- analog-style computation and simulation. ACES doesn't have the
- capability to do massive simulations and can't replace software packages
- designed for specific purposes. ACES can solve those everyday smaller
- problems that could be handled with a medium-sized analog computer.
-
- Think of ACES as, sort of, a calculator for differential equations. ACES is designed to run on any current Amiga. The language is easy to
- learn, contains a rich assortment of emulated analog and hybrid modules,
- and provides most of the look and feel of an analog computer. ACES has
- an optional analog Control Panel, Plotter facility, and on-screen Data
- Editor. With the optional Control Panel, the user can control modes,
- monitor variables, and vary parameters. A simple plotting window, is
- included, to show trends in the selected variables. A plot export
- facility tailors the data for several popular off-line plotting
- programs. Data (configuration, parameters, outputs etc..) can be
- prepared "off-line" with any text editor capable of outputing vanilla
- ASCII characters. (ED is fine.) Optionally the user may take advantage
- of the Screen Editor facility to enter and modify the input data.
-
- ACES, like any analog emulator, computes the independent variable in
- discrete "steps". Generally, decreasing the step size increases the
- accuracy of the solution. Internally, ACES uses an "open loop", fourth
- order, Runga-Kutta scheme of integration and double precision floating
- variables throughout. Obtaining slightly different solutions, to a given
- problem, is one thing the user must get used to with open-loop
- integration. It is common practice to use coarser steps to approach a
- solution then "tighten down" the step size when higher accuracy is
- desired. There is always a trade-off between accuracy and speed of
- calculations. Varying step size gives you this flexibility. Hopefully by
- the time you work through the given examples you will get a feel for
- varying the step size and gain confidence in the method.
-
- ACES includes a rich assortment of analog and hybrid-type computing
- modules. Most of the usual analog linear and non-linear functions are
- included. Currently, up to 75 modules can be programmed in one model.
- plus the independent variable, denoted block (76). ACES has built-in
- Proportional + Integral + Derivitive (PID) modules. The PID modules can
- be used stand alone or in "cascade". The PID module is, in reality, a
- macro built of ACE modules but uses only one of the available modules
- for each controller. The PID controller can be used to evaluate control
- action on simulated processes.
-
- ACES expects the dependent variables to be "amplitude-scaled".
-
- Scaling is common practice for analog computers, where the operating
- voltage is fixed and usually ranges from +- 10.0 to +- 100.0 volts. In
- ACES , scaling helps maintain the solution between reasonable dynamic
- limits, and as a by-product, increases the accuracy, usability, and
- forces the user to know more about his problem. ACES uses +-1.0 as the
- scaled maximum. This is also common analog practice and is known as
- "unity" scaling. The real-world value of the computed variable can be
- found simply by multiplying the scaled value by the scale factor. Analog
- computers must also scale the independent variable (for the analog has
- a fixed independent variable (seconds) due to the electrical nature of
- the integration mechanism.) We can use any quantity ,for the independent
- variable in ACES, as long as all integration scaling is CONSISTENT
- throughout.
-
- -Modules-
-
- Computing elements are provided for most of the useful mathematical
- operations. Elements that add, subtract, multiply, divide, and negate
- are available. Integrator and mathematical transcedentals, (log, sine
- cosine, etc.) are supplied. Up to 3 arbitrary function types, each with
- twenty segments, can be utilized in any number of blocks. There are the
- so-called "hybrid elements", (digital and analog functions combined)
- such as sample/hold devices, transport delays, relays, latches and
- flags., which have both kinds of input and output. There are several
- digital-only elements such as pulse generator, and "AND" gate. Several
- special devices are the PID controller and iteration module. Algebraic
- loops can be handled by the CSMP style wye and vacuous elements. There
- can be a total of 75 blocks programmed plus the independent variable
- (block 76) which can be used by any module. The limitations are as
- follows: 25 integrators, 3 PID controllers, 3 Unit delays, 3 function
- types. All in all, ACES has at it's disposal a very rich assortment of
- module type (see the appendix for complete description of the ACES
- computing elements).
-
- -Data Preparation-
-
- Having amplitude-scaled the system equations, prepared a suitable
- flow diagram, and calculated the initial conditions, parameters, and
- arbitrary function tables, a data set can be prepared using an editor of
- choice.
-
- First the configuration of the modules must be specified. Each
- configuration statement is on a single line. An, up to 16 character,
- Identifier, a space, Block number of the module, a space, Block type
- code, a space Input block 1, a space, Input block 2, a space, and Input
- block 3. Unused inputs are given Block 0 as a block number. Block number
- assignments can be arbitrary except for vacuous (V) modules. The
- efficiency of the computation is increased by giving these modules the
- highest number in the system.(75 down). A pound sign (#) , after the
- last configuration statement line, ends the configuration data section.
-
- The second part, of the dataset, consists of the initial conditions,
- parameters, and scaling information. There should be a parameter
- statement for every module configured. Unused parameters are given a
- value of 0.0. Scale factor is the actual multiplication factor used for
- the variable in the scaling process (or 1.0) if un-scaled. Bias factor
- is generally 0.0... Each parameter statement is on a single line. An, up
- to 16, character Identifier, a space, Block number, a space, 1st
- parameter, a space, 2nd parameter, a space, 3rd parameter, a space,
- Scale factor, and Bias factor. A pound sign (#), on the next line, after
- the last parameter statement, ends the parameter data section.
-
- The third part, of the dataset, is where the parameters for the
- independent variable are specified. Step size is first followed by a
- space, then Maximum value, a space, then Frequency of printing. A pound
- sign (#), on the next line, ends the independent variable
- specifications. The value of the independent variable always starts at
- 0.0 and increases to the maximum value. The computation can be
- interrupted or terminated beforehand through use of a Quit (Q) element
- or placing the analog into "Hold" mode.
-
- The fourth part, of the dataset, is where assignment of the module
- Block numbers, to be printed, is specified. The independent variable and
- up to seven dependent variables can be printed in the log. On a single
- line, seven block numbers are entered separated by single spaces.
- A pound sign (#), on the next line, ends the print assignment data.
- Unused variables should be assigned to block 0. The independent variable
- (Block 76) is always printed.
-
- The fifth part, of the dataset, is the plot specification data. The
- first line is required, the others are optional. The first line
- specifies the block number for the X axis and up to five Y axis
- channels, each entry separated by a single space. Unspecified channels
- must use block 0. If no other data is specified, default values will be
- used for the plot. A pound sign (#), on the next line, ends the plot
- specifications. The optional lines contain the plot Title, X and Y axis
- labels, plot X and Y maximums and minimums, and Y axis identification
- text, the format and order, of which, can be found in Appendix B. A
- pound sign (#), on the next line , ends the plot specifications portion
- of the data set.
-
- The last specifications, in the data set, are for the optional
- arbitrary function tables. There are three different function
- specifications, Type 1, Type 2, and Type 3. Each Type of function can be
- assigned to multiple blocks.
-
- The functions use equally spaced ordinate values and arbitrary
- values for the abscissa. The data should also be amplitude-scaled. There
- are 20 function segments for each function. The ordinate values are
- entered on four lines, the range of the abscissa is specified in the
- parameter section for each block using this Type. All 20 abscissa values
- must be specified, any value, including 0.0, can be specified for unused
- values. Values,out of range, of the function ordinate extend the
- endpoints of the function abscicca. A pound sign, on the next line, ends
- the specifications for up the functions. A pound sign is required, for this section, even if no function tables are used. The function table
- format will be explained, in detail, later on.
-
- A pound sign, on the last line ends the dataset file.
-
-
- -Function Generator Setup-
-
- The arbitrary function generator scheme used in ACES consists of
- fixed divisions of the ordinate and arbitrary points on the abscissa.
- There are 20 divisions or segments equally spaced. The total range of
- the ordinate is set by the parameters P1 and P2 for the block assigned.
- P1 is the maximum value and P2 is the minimum. The value of the ordinate
- must increase from P2 to P1 (P1 must be more negative than P2). The abscissa can be any arbitrary float value but good scaling practice
- dictates keeping values between +1.0 and -1.0 . Three different types of
- function can be stored. Each type function can be re-used as many times
- as required. Don't forget to set P1 and P2 parameters in all the block
- parameter specifications. Overrange of the ordinate (P1 and P2 settings)
- is allowable with the function values above P1 or below P2 equal to the
- end point of the abscissa (Y) value. The first line of data includes the
- type # (1, 2, or 3) and first 5 data points, the second line points 6 -
- 10, third line points 11-15, and the fourth and last line points 16-21. A pound sign (#) follows each type specification.
-
-
- -Operation-
-
- After creating a dataset, the dataset may be loaded into ACES and
- "RUN". Running the data, in this sense, means checking the syntax, legal
- block assignments, number of allowable modules, ranges, and suitability
- for operation. There are several datasets in the EXAMPLES drawer, which
- can be used to gain familiarity with loading data and running ACES. (It
- is suggested to go through the examples, in order,.)
-
- Select the "ARCHIVE" item from the "SYSTEM" menu. Select the desired
- dataset from any of the available drives. Select "Load" to access the
- desired file. We can now "RUN" the dataset through ACES to check for
- legal block numbers, available modules, ranges etc. We do this by
- selecting the menuitem "RUN" from the "SYSTEM" menu.
-
- If there are no syntax or assignment errors ACES will put the
- emulator in "I/C" mode (applying the initial condition values to all of
- the integration modules.) The emulator is now ready to operate on the
- variables and provide a solution. When it is desired to start operation
- select the "OPERATE" Subitem from the "MODE" Item on the "SYSTEM" Menu.
- The independent variable, and up to seven, selected dependent variables
- will be printed on the screen, during the operation. The emulator will
- be placed in "Hold" at the end of the specified "Operate" period. This
- is the simplest way to operate ACES, and if a single "answer" is desired
- this may be all you have to do.
-
- ACES, normally, only outputs the log to the screen. The screen only
- holds output for a few seconds when full, erases, then continues to show
- the log. A "Screen Pause" feature can be selected during setup which
- allows the user to view each screen. Select "Continue" to continue
- operation. The log may, optionally, also be directed to the Preferences
- printer or a file volume for permanent record. The log documents the
- initial dataset when the dataset is first run. Subsequent changes are
- reflected in the log of the sections involved.
-
- A Static Test may be printed in the log by selecting "STATIC TEST"
- Subitem from the "MODE" Item in the "SYSTEM" Menu. The output values, of
- all currently used blocks, are printed in scaled and unscaled form. A
- static check can be generated at any time from Initial Condition or Hold
- modes. A static check of variables can be very helpful in debugging an
- analog system of equations.
-
- Normally, all setup for the system is done before the dataset is
- "RUN". In "Setup" Mode, you may choose to use the Screen Editor to
- modify the dataset. The editor must be closed before the dataset can be
- run. All changes ,at this point, are temporary. The dataset must be
- "Saved" for the changes to be updated in the dataset file volume. The
- Control panel may be enabled while in Setup and used to control the
- operation of the emulated analog computer. The Control panel allows the
- user to select modes with the mouse, monitor any two blocks continuously,
- and change parameters in all blocks in any mode. The parameter changes
- are temporary. The Screen Editor can be used to change the current
- dataset.
-
- If the dataset is re-run the parameters will revert back to the original values. The Plotter window may be enabled in "Setup" Mode. The
- plot density, annotation, and up to 5 Y axis channels selected for
- plotting.
-
- There is a mode available with the optional Control Panel that is
- not available from the "MODE" Menu. The name of this mode is "REP/OP",
- which stands for repeated operation mode. In REP/OP the compute mode of
- the analog cycles from initial conditions to operate - to hold - back to
- initial condition - etc. Several of the analog and hybrid modules
- respond to this mode enabling such things as parameter sweeps and
- iteration. The REP/OP mode can be canceled by going to "Hold" mode. The
- last cycle can be completed,if desired, by selecting "Operate" mode.
- There are several examples included that utilize repetitive operation.
-
- The optional QWIK-PLOT window gives a basic, Intuition driven, line
- plot of up to 5 abscissa (Y axis) variables verses any 1 ordinate
- (X axis) variable. A sidebar, on the QWIK-PLOT screen shows the current
- values of the annotation, scale factors, and other information currently
- in the dataset. From the QWIK-PLOT menu, plot density (the number of
- points for each variable) can be specified. Lines, tics and grids are
- optionally put on the plot. Plot data can be "exported" to a off-line
- plotting program.
-
- A plot record can be exported at the end of any operate period
- while in the hold mode. The pertinent data in the plot section of the
- dataset, the unscaled ordinate variable and all 5 unscaled abscicca
- values are included in the plot file. Export files for Multiplot and
- ListPlot can currently be generated. These data files are ASCII coded
- text and can be edited, after the fact, to include other plot options
- which are currently not implemented.
-
-
- -Control Panel Window-
-
- The ACES optional Control panel emulates features normally found on
- an actual analog computer console. The output of any two blocks can be
- continuously monitored, parameters may be entered in potentiometer
- devices, and modes can be controlled. The outputs of any of two blocks
- can be read in any mode. The coefficients for all block parameters can be
- adjusted while the analog is stopped or running. (Parameters, so
- adjusted, are changed only while the data is loaded. To make the changes
- permanent you must resave the dataset back on the volume where stored).
- The parameters cam be entered on the slide potentiometer gadgets (Range
- -10. to +10. ) or enter the floating number directly into the text type
- gadget.
- The analog mode pushbutton gadgets directly select the Initial
- condition (IC), Hold(HD), Operate(OP), and Repeated operation(REP/OP)
- modes on the analog computer. Box indicator gadgets indicate the present
- mode selected. A spare indicator is energized when a flag(F) element is
- triggered. This can notify the operator of some event occurring during
- the solution (sign change, limit, etc.). The Control Panel window can be
- closed at any time by clicking on the quit box at the upper left corner
- of the window.
-
- -Editor Window-
-
- A window-based editor is optionally available to MODIFY, ADD, or
- DELETE lines from the loaded dataset. You may use the editor to enter a
- completely new dataset,if you wish. All sections of the dataset
- [Configuration, Parameters, Timing, Functions, Print and Plot
- parameters] can be entered. A handy FORMAT display indicates the proper
- format for each section. One thing to remember... The changes apply only
- to the dataset loaded. To save changes permanently you must SAVE these
- changes back to the original storage volume. You can do this from the
- SYSTEM Menu ARCHIVE. You must close the editor window before re-RUNning
- the dataset.
-
-
- -Plotter Setup-
-
- The QWIK-PLOT Plotter Screen must be enabled while in SETUP mode. Up
- to 5 variables may be plotted against any module output. Several
- presentation options are available and may be selected by the screen menu. Plot conditions, on the screen, are sent to the Export plot file.
- Labeling and annotation information are entered in the dataset. (See
- Appendix B for data format.)
-
-
- -Plot Export Facility-
-
- ACES primary design aim is to provide a system for getting timely
- and accurate answers to your problem. Every effort has been made to hold
- down on the frills. There are occasions, however, that documented
- results, particularly professionally plotted results are required.
-
- ACES includes an export facility for several popular shareware
- plotting programs. Listplot (a subset of PLPLOT) and Multiplot are
- currently supported. Listplot is available in Fred Fish collection #
- 391 and a version of Multiplot is available on Fred Fish collection #
- 572. Either of these programs a can render professional looking plots
- to a number of different output devices. Every effort is made to export
- , to each program, all plot data it can accept, such as plot scaling,
- tic spacing, labels, grids, annotation, etc. Listplot is included with
- the distribution. Multiplot is available from a number of sources.
-
-
- -Examples-
-
- The following example datasets can be found in the Examples folder.
- They are supplied for informational purposes only. There is no guarantee
- or implied warranty as to their applicability to any given application.
- Their main purpose is instructional and as a basis for validating the
- modules and the emulator.
-
- -------------------------------------------------------------------------
-
-
- EXAMPLE NAME: DESCRIPTION: NOTES:
- ------------- ------------ ------
-
- SpringMass A spring-mass-damper Basic implementation of
- oscillatory system. F=MA equation commonly
- found in engineering.
-
- SineWave A basic sine-omega-t Purpose is to show effect
- and cosine-omega-t of step size upon accuracy linear oscillator. of integration in both
- frequency and amplitude.
- Results of integration
- compared against math trig.
- functions.
-
- PHYSBE Volumetric model of Medium sized simulation
- the human circulatory uses arbitrary functions
- system and heart. and discrete logic. A
- classic example....
-
- CurveFit-1 Minimization of error Purpose is to show
- between field data and methods using Repetitive
- a mathematical model. Operation to manually
- adjust parameters.
-
- CurveFit-2 (Same as above) with one Purpose is to show method
- parameter calculated. of adding automatic
- iteration of one
- parameter. Features the
- Iterative module (?).
-
- CurveFit-3 (Same as above) with two Purpose is to show method
- parameters calculated. of adding additional
- automatic iteration of
- multiple parameters.
-
- Splat Study of pilot eject- Shows use of hybrid logic
- ion from an airplane. to control solution of
- differential equations
- containing limits.
-
- Plate Unsteady-state heat A practical diffusion
- transfer in a steel model of a solid with
- variable surface boundary
- conditions.
-
- Algebra Algebraic loop Method for solving
- calculation. algebraic loops involved
- in analog models.
-
- Pid Control of an first- Demonstrates use of the
- order process with an use in PID controller
- analog controller. (%) module to control a
- simulated process.
-
- Sample (Same as above) with Shows use of hybrid /
- built-up digital-type analog modules.
- sampling controller. Zero-order-hold (Z) and
- unit delay (U) modules
- are implemented.
-
- Implicit Computing the inverse Shows use of the Vacuous
- of log e function (V) and Wye (Y) modules
- (limited range). to simulate the
- calculations normally
- done with the high-gain
- analog operational
- amplifier.
-
- ------------------------------------------------------------------------
-
-
- -Conclusions-
-
- ACES has been designed as a very basic but capable analog computer
- system emulator. Every effort has been made to hold down the frills, in
- this program, so that it may be run on any AMIGA computer
- system. ACES is very usable to solve those small to medium-sized
- problems that have a way of cropping up. ACES has not been designed as a
- production tool. You would hardly use ACES to generate any volumeous
- amount of data on any particular model. That's the purpose of all the
- great packages tailored to a specific application. Think of ACES as more
- of a universal calculator for systems of linear and non-linear
- differential equations. Through the use of ACES, you will gain a feel of
- the problem, be able to interact, intuitively make changes, and possibly
- solve that problem. Good Luck!; I hope you enjoy using ACES...
-
-
- -------------------------------------------------------------------------
-
-
- [end]
-
-
-
-